package ai.mspbots.test.service;

import ai.mspbots.test.dto.AzureAIConfig;
import ai.mspbots.test.entity.TenantIntegration;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface TenantIntegrationService extends IService<TenantIntegration> {
    
    /**
     * 根据租户代码查询集成配置
     */
    List<TenantIntegration> getByTenantCode(Long tenantCode);
    
    /**
     * 根据集成ID查询配置
     */
    List<TenantIntegration> getByIntegrationId(Long integrationId);

    List<AzureAIConfig> getByIntegrations(Long integrationId);
    /**
     * 根据租户和集成ID查询唯一配置
     */
    TenantIntegration getByTenantAndIntegration(Long tenantCode, Long integrationId);
    
    /**
     * 检查租户集成配置是否存在
     */
    boolean existsByTenantAndIntegration(Long tenantCode, Long integrationId);
    
    /**
     * 启用集成配置
     */
    boolean enableIntegration(Long id);
    
    /**
     * 禁用集成配置
     */
    boolean disableIntegration(Long id);
    
    /**
     * 更新参数值
     */
    boolean updateParamsValues(Long id, String paramsValues);
    
    /**
     * 批量更新状态
     */
    boolean batchUpdateStatus(List<Long> ids, Integer status);
    
    /**
     * 根据状态查询配置
     */
    List<TenantIntegration> getByStatus(Integer status);
    
    /**
     * 查询JSON参数中包含特定值的配置
     */
    List<TenantIntegration> getByJsonValue(String jsonValue);
}